using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace Jbe.TestSuite.Infrastructure.Interface.Services
{
    /// <summary>
    /// Service for creating UI elements which can be used by UI extension sites.
    /// Using this service allows to change the concrete UI element behind an UI extension
    /// site without the need for modifing all dependent modules.
    /// </summary>
    public interface IUIElementCreationService
    {
        IMenuItem CreateMenuItem();
        IMenuItem CreateMenuItem(string text);
        IMenuItem CreateMenuItem(string text, Image image);

        IToolBar CreateToolBar();
        IToolBar CreateToolBar(params IToolBarItem[] items);

        IToolBarItem CreateToolBarItem();
        IToolBarItem CreateToolBarItem(string text);
        IToolBarItem CreateToolBarItem(string text, Image image);
    }

    public interface IMenuItem
    {
        event EventHandler Click;

        string Text { get; set; }

        Image Image { get; set; }
    }

    public interface IToolBar
    {
        IList<IToolBarItem> Items { get; }
    }

    public interface IToolBarItem
    {
        event EventHandler Click;

        string Text { get; set; }

        Image Image { get; set; }
    }
}
